As computing and communications technologies have advanced, there has been and continues to be a globalization of market places and the expansion of business and governmental enterprises alike. The geographic limitations of sharing data and information across large spans are becoming a distant memory. Moreover, with these technological advances, computing applications which were once slated for use on stand alone machines are being deployed across, what are often, large computing environment networks and platforms. As more data and computing applications become shared, there arises a need to monitor and control the systems that house data to ensure that they are properly functioning and protect against unwanted down time which could translate into lost revenues.
An enterprise's computing environment might contain hundreds of server computers and, possibly, thousands of client computers, all in communication to share applications and application data. Such computing environment might also support vast database systems for use to store application data. Today's data stores, or databases, are designed to operate on a single stand alone machine or among several computing machines (e.g. computer database servers) and cooperate with the computing environment to accept data for storage and/or to provide data to a requesting application. Given the importance of an enterprise's data, significant efforts have and are being made to ensure that the database applications operate in an optimal manner.
On the flip side, computing and networking technologies have transformed many important aspects of the home life, as well. Computers have become a household staple instead of a luxury, educational tool and/or entertainment center, and provide users with a tool to manage and forecast finances, control household operations like heating, cooling, lighting and security, and store records and images in a permanent and reliable medium. Networking technologies like the Internet provide users with virtually unlimited access to remote systems, information and associated applications.
Traditional business practices are evolving with computing and networking technologies. For example, a conventional banking transaction can include gathering information such as bank account number, passbook and identification, dedicating time to travel to the bank, procuring transportation, waiting in line and utilizing a teller to facilitate a banking transaction. Today, a consumer can access his/her account via the Internet and perform a growing number of available transactions such as balance inquiries, funds transfers and bill payment with the click of a mouse button.
As computing and networking technologies become robust, secure and reliable, more consumers, wholesalers, retailers, entrepreneurs, educational institutions, advocacy groups and the like are shifting paradigms and employing the Internet to perform business instead of the traditional means. For example, many businesses and consumers are providing web sites and/or on-line services (e.g., for purchasing food and clothing, searching for information, sending email and playing interactive games). In another example, a stock market web site can provide the user with tools for retrieving stock quotes and purchasing stock.
Typically, a user interfaces with a client(s) application (e.g., a web page) to interact with a server(s) that stores information in a database that is accessible to the client application. Databases provide a persistent, durable store for data that can be shared across multiple users and applications. Client(s) applications generally retrieve data from the database through a query(s), which returns results containing the subset of data interesting to the application. The application then consumes, displays, transforms, stores, or acts on those results, and may submit changes based on the results retrieved.
Once results are retrieved, changes may be made to the data in the database and the client notified using the Database Change Notifications mechanism. A database change notification mechanism is describe more fully in co-pending, commonly assigned, U.S. patent application Ser. No. 10/402,025, filed on Mar. 28, 2003, entitled, “SYSTEMS AND METHODS FOR REQUESTING AND RECEIVING DATABASE CHANGE NOTIFICATIONS,” which is herein incorporated by reference in its entirety.
Currently, the database change notifications mechanism operates to provide notification to subscribers of changes in the database. In operation, the Database Change Notifications provides an interface for collecting subscriber and subscription data, and contains components that collect events and generate, format and distribute notifications. To send notifications, the Notifications mechanism obtains information about subscribers (e.g. the information that subscribers are interested in, and information about where to send information). A subscriber obtains a subscription to the Notification mechanism to obtain and process desired data. In the context of business application and data environments, many business scenarios require the change detection mechanism scale to a very large number of parameterizeable client queries. Such processing by the Notifications mechanism be extremely time intensive and a drain on precious resources as each subscription (e.g. query) must be processed by the Notifications mechanism. A more advantageous practice contemplates the use of the subscription parameters to alleviate the processing burden.
From the foregoing, it is appreciated that there exists a need to overcome the prior art.